A database system requires periodic management tasks to ensure reliable and efficient operation. These management tasks may include integrity checks, calculation of optimizer statistics, indexing, etc.
A database management task operates on a set of database objects. Accordingly, changes to the database objects are prevented during operation of the management task. One method for preventing such changes is to deny client applications access to the database system during operation of the management task. This method may result in unacceptable levels of system downtime.
Alternatively, database objects may be locked prior to execution of a management task which will operate thereon. The database system may continue to respond to requests from client applications while the database objects remain locked. However, the locks may conflict with certain requests from the client applications. Moreover, the locks may negatively impact the performance of the database system.
It may be desirable to provide a system to allow operation of a database management task while addressing one or more of the foregoing concerns.